/**
 * JDLoginError.java	01/02/2012
 */

package l3.info.Projet.Client;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * Fenêtre modale pour une erreur de login
 * @author Loic Martinez
 * @version 1.0
 */

public class JDAPropos extends JDialog implements ActionListener {

	private final static String TITRE = "Erreur login";
	private final static String OK = "OK";
	private final static int LARGEUR = 290;
	private final static int HAUTEUR = 110;
	private final static int ABSCISSE = 480;
	private final static int ORDONNEE = 280;
	private JLabel label;
	private JButton bouton;
	private JPanel panLabel, panBouton;

	/**
	 * Constructeur
	 * @param erreur, le message à afficher
	 */
	public JDAPropos(String message) {
		setProperties();
		addComponents(FlowLayout.CENTER, message);
		setEnter();
		setVisible(true);
	}

	/**
	 * Configuration des propriétés de la JFrame
	 */
	private void setProperties() {
		setTitle(TITRE);
		setBounds(ABSCISSE, ORDONNEE, LARGEUR, HAUTEUR);
		setResizable(false);
		setModal(true);
		getContentPane().setLayout(new FlowLayout());
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
	}

	/**
	 * Ajout du label et du bouton
	 * @param alignement, la position des éléments
	 * @param erreur, la valeur du JLabel
	 */
	private void addComponents(int alignement, String erreur) {
		panLabel = new JPanel(new FlowLayout(alignement));
		panLabel.setPreferredSize(new Dimension(LARGEUR, 30));
		label = new JLabel(erreur);
		panLabel.add(label);
		add(panLabel);

		panBouton = new JPanel(new FlowLayout(alignement));
		panBouton.setPreferredSize(new Dimension(LARGEUR, 50));
		bouton = new JButton(OK);
		bouton.addActionListener(this);
		panBouton.add(bouton);
		add(panBouton);
	}

	/**
	 * Si on appuie sur Entrée, alors ça déclenche le listener
	 * du bouton bouton
	 */
	public void setEnter() {
		getRootPane().setDefaultButton(bouton);
	}

	/**
	 * Permet de gérer les actions sur les ActionListeners
	 */
	public void actionPerformed(ActionEvent ev) {
		if (ev.getSource() == bouton) {
			setVisible(false);
			dispose();
		}
	}
}
